Servicio Docker no inicia (iptables)

Descripcion

Al intentar ejecutar el servicio de docker con sudo service docker start el servicio no se inicia, si miramos el archivo de log /var/log/docker.log vemos el siguiente error:

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.8.4 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
Solución

Este fallo se da porque Docker se está ejecutando en una distribución con WSL1 y necesita WSL2.

Podemos consultar la versión de WSL de nuestra distribución con el siguiente comando:

wsl -l -v

Para solucionar este problema solo tenemos que actualizar la distribución con el siguiente comando:

wsl --set-version DISTRO 2

Cambiamos DISTRO por el nombre de nuestra distribución, el nombre aparece en el comando wsl -l -v, el comando puede tardar un par de minutos en ejecutarse.

Tags

Docker | Error | Iptables